package com.nettytime.util.testjiebaonianbaos;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.socket.SocketChannel;
import io.netty.handler.codec.FixedLengthFrameDecoder;
import io.netty.handler.codec.string.StringDecoder;

/**
 * 固定长度
 * @author Administrator
 *
 */
public class ChildClientFixedLengthChannelHandler extends ChannelInitializer<SocketChannel> {

    @Override
    protected void initChannel(SocketChannel ch) throws Exception {
        // 对服务端发送的消息进行粘包和拆包处理，由于服务端发送的消息已经进行了空格补全，
        // 并且长度为100，因而这里指定的长度也为100
        ch.pipeline().addLast(new FixedLengthFrameDecoder(100));
        // 将粘包和拆包处理得到的消息转换为字符串
        ch.pipeline().addLast(new StringDecoder());
        // 对客户端发送的消息进行空格补全，保证其长度为100
        ch.pipeline().addLast(new FixedLengthMessageEncoder(100));
        // 客户端发送消息给服务端，并且处理服务端响应的消息
        ch.pipeline().addLast(new NettyClientHandler());
    }
}
